প্যাসক্যাল ভাষায় Record একটি ডেটা টাইপ যা বিভিন্ন ধরনের ডেটা একত্রিত করে একটি ইউনিট হিসেবে ব্যবহারের সুযোগ দেয়। এটি একটি কাস্টম ডেটা টাইপ তৈরি করার উপায়, যার মধ্যে বিভিন্ন ডেটা টাইপের মান থাকতে পারে। Record ব্যবহারের মাধ্যমে আমরা একটি নির্দিষ্ট বিষয় বা অবজেক্টের সব তথ্য একসঙ্গে সংরক্ষণ এবং পরিচালনা করতে পারি।
১. Record ডিক্লারেশন
Record ডিক্লারেশন করতে হলে, প্রথমে আপনাকে একটি type নির্দেশ করতে হবে যেখানে আপনি Record-এর কাঠামো বা ফিল্ডস (fields) নির্ধারণ করবেন। প্রতিটি ফিল্ড একটি ভেরিয়েবল হতে পারে, যা বিভিন্ন ডেটা টাইপের হতে পারে।
উদাহরণ:
program RecordExample;
type
Person = record
name: string[50];
age: Integer;
height: Real;
end;
var
p1: Person; { পি১ হলো Person টাইপের একটি ভেরিয়েবল }
begin
{ Record-এর মধ্যে ভেরিয়েবল গুলোর মান দেওয়া }
p1.name := 'Azizur Rahman';
p1.age := 30;
p1.height := 5.9;
{ Record থেকে মান আউটপুট করা }
writeln('Name: ', p1.name);
writeln('Age: ', p1.age);
writeln('Height: ', p1.height);
end.এই প্রোগ্রামে:
- Person একটি
recordটাইপ যা তিনটি ভেরিয়েবল ধারণ করে:name(string),age(Integer), এবংheight(Real)। p1হল একটিPersonটাইপের ভেরিয়েবল যাname,age, এবংheightমান ধারণ করে।- প্রতিটি ফিল্ডে মান অ্যাসাইন করা হয় এবং পরে সেগুলি আউটপুট করা হয়।
২. Record ম্যানিপুলেশন
Record ম্যানিপুলেশন হলো Record-এর ফিল্ডগুলোর মান পরিবর্তন করা বা নতুন মান সেট করা। আপনি যখন একটি Record টাইপের ভেরিয়েবল তৈরি করেন, তখন তার ফিল্ডগুলিতে মান অ্যাসাইন বা পরিবর্তন করতে পারেন।
উদাহরণ:
program RecordManipulation;
type
Employee = record
id: Integer;
name: string[100];
salary: Real;
end;
var
emp: Employee;
begin
{ Record-এর মধ্যে ফিল্ডের মান অ্যাসাইন করা }
emp.id := 101;
emp.name := 'John Doe';
emp.salary := 55000.75;
{ Record থেকে মান আউটপুট করা }
writeln('Employee ID: ', emp.id);
writeln('Employee Name: ', emp.name);
writeln('Employee Salary: ', emp.salary);
end.এখানে:
Employeeএকটিrecordটাইপ যা একটি কর্মীরid,name, এবংsalaryধারণ করে।empহলোEmployeeটাইপের একটি ভেরিয়েবল, যেখানেid,name, এবংsalaryফিল্ডে মান দেওয়া হয়।- পরে,
writelnফাংশনের মাধ্যমে Record-এর ফিল্ডগুলোর মান আউটপুট করা হয়।
৩. Record টাইপের মধ্যে পয়েন্টার ব্যবহার
প্যাসক্যাল ভাষায় আপনি Record-এর মধ্যে পয়েন্টারও ব্যবহার করতে পারেন। এটি অধিক জটিল ডেটা কাঠামো তৈরি করতে সাহায্য করে, যেখানে আপনি Record-এর মধ্যে অন্য Record বা ডেটার একটি রেফারেন্স রাখতে পারেন।
উদাহরণ:
program RecordPointerExample;
type
Address = record
street: string[100];
city: string[50];
zipCode: string[10];
end;
Person = record
name: string[50];
age: Integer;
address: ^Address; { Pointer to Address record }
end;
var
p1: Person;
addr1: Address;
begin
{ Address record এর মান সেট করা }
addr1.street := '123 Main St';
addr1.city := 'Dhaka';
addr1.zipCode := '1212';
{ Person record এর মান সেট করা }
p1.name := 'Azizur Rahman';
p1.age := 30;
p1.address := @addr1; { Address record এর পয়েন্টার অ্যাসাইন করা }
{ Address record এর মান আউটপুট করা }
writeln('Name: ', p1.name);
writeln('Age: ', p1.age);
writeln('Street: ', p1.address^.street);
writeln('City: ', p1.address^.city);
writeln('Zip Code: ', p1.address^.zipCode);
end.এখানে:
Personrecord এর মধ্যেaddressনামক একটি পয়েন্টার রয়েছে, যাAddressটাইপের একটি Record নির্দেশ করে।@addr1ব্যবহার করেaddressপয়েন্টারেaddr1Record-এর রেফারেন্স দেয়া হয়।- পয়েন্টারের মাধ্যমে Record-এর ফিল্ডগুলো অ্যাক্সেস করা হয় (
p1.address^.streetইত্যাদি)।
৪. Record Arrays
প্যাসক্যালের মধ্যে আপনি Record Arrays ব্যবহার করতে পারেন, যা অনেক Record একত্রে সংরক্ষণ করতে সাহায্য করে।
উদাহরণ:
program RecordArrayExample;
type
Book = record
title: string[100];
author: string[50];
price: Real;
end;
BookArray = array[1..3] of Book; { ৩টি Book Record এর জন্য Array }
var
books: BookArray;
begin
{ Array এর প্রতিটি Book এর মান সেট করা }
books[1].title := 'Pascal Programming';
books[1].author := 'John Doe';
books[1].price := 39.99;
books[2].title := 'Learn Pascal';
books[2].author := 'Jane Smith';
books[2].price := 29.99;
books[3].title := 'Advanced Pascal';
books[3].author := 'Michael Johnson';
books[3].price := 49.99;
{ Array এর মধ্যে Book গুলোর মান আউটপুট করা }
writeln('Book 1: ', books[1].title, ', ', books[1].author, ', ', books[1].price);
writeln('Book 2: ', books[2].title, ', ', books[2].author, ', ', books[2].price);
writeln('Book 3: ', books[3].title, ', ', books[3].author, ', ', books[3].price);
end.এখানে:
BookArrayনামক একটি Array তৈরি করা হয়েছে যা ৩টিBookRecord ধারণ করে।- প্রতিটি Record এর ফিল্ডে মান অ্যাসাইন করা হয় এবং পরে সেগুলি আউটপুট করা হয়।
সারাংশ
Record প্যাসক্যালের একটি শক্তিশালী ডেটা টাইপ যা একাধিক ভিন্ন ধরনের ডেটা একত্রে সংরক্ষণ করতে সহায়তা করে। আপনি Record ডিক্লারেশন করে বিভিন্ন ডেটা টাইপের মান একসঙ্গে রাখ सकते এবং পরে তাদের মধ্যে মান পরিবর্তন বা ম্যানিপুলেট করতে পারেন। Record পয়েন্টার, Array, এবং প্রথমিক ব্যবহার ইত্যাদি দিয়ে আরও জটিল কাঠামো তৈরি করা যায়।
Read more